Detecting cyber threats such as computer viruses and other malware is an important computer security function. Cyber threat detection is increasingly being performed off-device, for example using cloud-based security monitoring services, as the logic and analysis requirements exceed available local resources. Cloud-based threat analysis typically requires all client monitoring data to be exported to a remote cloud server to be processed.
Currying is a mathematical technique of translating the evaluation of a function that takes several arguments into the evaluation of a sequence of functions that each take a single argument, called curried functions. For example, a curried function takes a single argument and returns another curried function that itself takes a single argument. Evaluation of the last function of the curried function set returns the same result as the original function.